package cn.dengta.webapp.im.enums;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import me.codeplayer.util.NumberUtil;

/**
 * 用户活跃指标
 *
 * @author XiaoRong
 * @since 2022/12/31
 */
public enum UserActiveQuota {

	/** 回复数 */
	REPLY("r"),
	/** 收到消息数 */
	MSG("m"),
	/** 搭讪数 */
	GREET("g"),
	/** 在线时长 */
	ONLINE("o"),
	/** 聊天场数 */
	CHAT("c"),
	/** 视频通话 */
	VIDEO("v"),
	/** 任务完成标记 */
	TASK("t");

	public final String field;

	public static final UserActiveQuota[] CACHE = values();

	UserActiveQuota(String field) {
		this.field = field;
	}

	/**
	 * 根据用户id解析字段名称
	 */
	public String parseField(Long userId) {
		return userId + field;
	}

	/**
	 * 获取指标数据
	 */
	public Integer getQuotaValue(List<String> source) {
		return NumberUtil.getInteger(source.get(ordinal()), 0);
	}

	/**
	 * 指标数据字段列表
	 */
	public static List<String> getFieldList(Long userId) {
		return Stream.of(CACHE).map(v -> userId + v.field).collect(Collectors.toList());
	}
}
